home *** CD-ROM | disk | FTP | other *** search
/ Nebula 2 / Nebula Two.iso / SourceCode / CronVixie2.1 / CONVERSION < prev    next >
Text File  |  1995-06-12  |  4KB  |  86 lines

  1. $Header: CONVERSION,v 2.1 90/07/18 00:27:18 vixie Exp $
  2.  
  3. Conversion of BSD 4.[23] crontab files:
  4.  
  5. Edit your current crontab (/usr/lib/crontab) into little pieces, with each
  6. users' commands in a different file.  This is different on 4.2 and 4.3,
  7. but I'll get to that below.  The biggest feature of this cron is that you
  8. can move 'news' and 'uucp' cron commands into files owned and maintainable
  9. by those two users.  You also get to rip all the fancy 'su' footwork out
  10. of the cron commands.  On 4.3, there's no need for the 'su' stuff since the
  11. user name appears on each command -- but I'd still rather have separate
  12. crontabs with seperate environments and so on.
  13.  
  14. Leave the original /usr/lib/crontab!  This cron doesn't use it, so you may
  15. as well keep it around for a while in case something goes wakko with this
  16. fancy version.
  17.  
  18. Most commands in most crontabs are run by root, have to run by root, and
  19. should continue to be run by root.  They still have to be in their own file;
  20. I recommend /etc/crontab.src or /usr/adm/crontab.src.
  21.  
  22. 'uucp's commands need their own file; how about /usr/lib/uucp/crontab.src?
  23. 'news' also, perhaps in /usr/lib/news/crontab.src...
  24.  
  25. I say `how about' and `perhaps' because it really doesn't matter to anyone
  26. (except you) where you put the crontab source files.  The `crontab' command
  27. COPIES them into a protected directory (CRONDIR/SPOOL_DIR in cron.h), named
  28. after the user whose crontab it is.  If you want to examine, replace, or
  29. delete a crontab, the `crontab' command does all of those things.  The
  30. various `crontab.src' (my suggested name for them) files are just source
  31. files---they have to be copied to SPOOLDIR using `crontab' before they'll be
  32. executed.
  33.  
  34. On 4.2, your crontab might have a few lines like this:
  35.  
  36.     5 * * * *   su uucp < /usr/lib/uucp/uudemon.hr
  37.     10 4 * * *  su uucp < /usr/lib/uucp/uudemon.day
  38.     15 5 * * 0  su uucp < /usr/lib/uucp/uudemon.wk
  39.  
  40. ...or like this:
  41.  
  42.     5 * * * *   echo /usr/lib/uucp/uudemon.hr | su uucp
  43.     10 4 * * *  echo /usr/lib/uucp/uudemon.day | su uucp
  44.     15 5 * * 0  echo /usr/lib/uucp/uudemon.wk | su uucp
  45.  
  46. On 4.3, they'd look a little bit better, but not much:
  47.  
  48.     5 * * * *   uucp  /usr/lib/uucp/uudemon.hr
  49.     10 4 * * *  uucp  /usr/lib/uucp/uudemon.day
  50.     15 5 * * 0  uucp  /usr/lib/uucp/uudemon.wk
  51.  
  52. For this cron, you'd create /usr/lib/uucp/crontab.src (or wherever you want
  53. to keep uucp's commands) which would look like this:
  54.  
  55.     # /usr/lib/uucp/crontab.src - uucp's crontab
  56.     #
  57.     PATH=/usr/lib/uucp:/bin:/usr/bin
  58.     SHELL=/bin/sh                # otherwise it's uucico
  59.     HOME=/usr/lib/uucp            # '' '' /usr/spool/uucppublic
  60.     #
  61.     5 * * * *   uudemon.hr
  62.     10 4 * * *  uudemon.day
  63.     15 5 * * 0  uudemon.wk
  64.  
  65. The application to the `news' cron commands (if any) is left for you to
  66. figure out.  Likewise if there are any other cruddy-looking 'su' commands in
  67. your crontab commands, you don't need them anymore: just find a good place
  68. to put the `crontab.src' (or whatever you want to call it) file for that
  69. user, put the cron commands into it, and install it using the `crontab'
  70. command (probably with "-u USERNAME", but see the man page).
  71.  
  72. If you run a 4.2-derived cron, you could of course just install your current
  73. crontab in toto as root's crontab.  It would work exactly the way your
  74. current one does, barring the extra steps in installing or changing it.
  75. There would still be advantages to this cron, mostly that you get mail if
  76. there is any output from your cron commands.
  77.  
  78. One note about getting mail from cron: you will probably find, after you
  79. install this version of cron, that your cron commands are generating a lot
  80. of irritating output.  The work-around for this is to redirect all EXPECTED
  81. output to a per-execution log file, which you can examine if you want to
  82. see the output from the "last time" a command was executed; if you get any
  83. UNEXPECTED output, it will be mailed to you.  This takes a while to get
  84. right, but it's amazingly convenient.  Trust me.
  85.  
  86.